#ifndef identTable_compil_h
#define identTable_compil_h
#include <map>
#include <vector>
#include <string>

typedef std::string String;
typedef std::map<String, int> MapStrInt;
typedef	std::vector<String> VectorStr;

class IdentTable {


	private:
		MapStrInt *identTable;
		VectorStr *revLookupTable;
		static int currentTempIdentNumber;

	public:
		IdentTable() ;
		~IdentTable() ;
		/*
		 * renvoye un nombre >= 0, le nombre associe au symbole donne
		 */
		int put(String * identName);
		int put(char * identName);
		int putTemp();
		int getValue(String * identName);
		int getValue(char * identName);
		String getName(int identValue);
		void show();
};

#endif
